// Package response pkg/response/code.go
package response

// ResponseCode 定义状态码类型
type ResponseCode int

// 预定义状态码常量
const (
	// 常用状态码
	OK           ResponseCode = 200 // 成功
	Created      ResponseCode = 201 // 资源创建成功
	BadRequest   ResponseCode = 400 // 请求参数错误
	Unauthorized ResponseCode = 401 // 未授权访问
	Forbidden    ResponseCode = 403 // 禁止访问
	NotFound     ResponseCode = 404 // 资源不存在
	Conflict     ResponseCode = 409 // 资源冲突
	ServerError  ResponseCode = 500 // 服务器错误

	// 业务错误码 (可根据需要保留或精简)
	ErrParams   ResponseCode = 1001 // 参数校验错误
	ErrDatabase ResponseCode = 1002 // 数据库操作错误
	Errcaptcha  ResponseCode = 1003 // 验证码 错误
)

// 状态码消息映射
var messages = map[ResponseCode]string{
	OK:           "操作成功",
	Created:      "资源创建成功",
	BadRequest:   "请求参数错误",
	Unauthorized: "未授权访问",
	Forbidden:    "禁止访问",
	NotFound:     "资源不存在",
	Conflict:     "资源冲突",
	ServerError:  "服务器内部错误",
	ErrParams:    "参数校验失败",
	ErrDatabase:  "数据库操作失败",
	Errcaptcha:   "验证码错误",
}

// GetMessage 获取状态码消息
func GetMessage(code ResponseCode) string {
	if msg, ok := messages[code]; ok {
		return msg
	}
	return "未知错误"
}
